package cn.iocoder.yudao.module.ent.controller.admin.receivenumber.vo;

import cn.iocoder.yudao.module.ent.controller.admin.tag.vo.tag.TagRespVO;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

@Schema(description = "企业大数据 - 联系号码 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ReceiveNumberRespVO {

    @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "7240")
    @ExcelProperty("编号")
    private Long id;

    @Schema(description = "企业id", requiredMode = Schema.RequiredMode.REQUIRED, example = "24813")
    private String entId;

    @Schema(description = "企业名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "24813")
    @ExcelProperty("企业名称")
    private String entName;

    @Schema(description = "号码", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("号码")
    private String number;

    private String descList;

    /**
     * 是否关键决策人(重要号码)
     * 规则： 1. 获取desc_list 中包含年报的具体年份， 取最早的
     *       2. 同一个号码在多个来源中存在相同号码，取出现次数最多的
     *
     */
    private Boolean primaryNum;


    /**
     * 号码类型
     * 0-固话
     * 1-手机
     * 3-邮箱
     */
    @Schema(description = "号码类型", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("号码类型")
    private Integer numberType;

    @Schema(description = "备注", example = "你猜")
    @ExcelProperty("备注")
    private String remark;

    @Schema(description = "跟进状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @ExcelProperty("跟进状态")
    private Boolean followStatus;

    @Schema(description = "标签")
    @ExcelProperty("标签")
    private String tag;

    private List<TagRespVO> tagList;

    @Schema(description = "创建时间")
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

    private Integer callCount;

    private Integer acceptCount;

    private LocalDateTime lastCallTime;

    private LocalDateTime lastAcceptTime;
}